iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
自我挑戰組

30天Java由淺入深系列 第 6

Day 6 : 變數( 2 )

  • 分享至 

  • xImage
  •  

Primitive v.s Non-Primitive

不同變數會以不同方式儲存在記憶體中。在Java中,我們可以簡單將變數的資料型態分為兩種 :

  • Primitive Data Types(原始資料型別)
  • Non-Primitive Data Types(參考資料型態)

Primitive

顧名思義就是不可改變的(immutable)變數,已經被定義(predfined)在Java中。以code by value方式處理,意指在記憶體裡傳遞時直接複製其值(stack記憶體位址) 。
-> 包含 : 數字(整數and小數)、字元char、布林boolean

Non-Primitive

又稱Reference Types / Object type,因為其在記憶體裡存值的方式是存reference參照(heap記憶體位址)。沒有提前被定義在Java裡,需要被程式設計師建立。
-> 包含 : 字串String、陣列Array、類別Classes, etc.

Difference

  1. Primitive已經被定義好,Non-Primitive需要被設計。
  2. Non-Primitive可以被用來呼叫函數執行運作程式,Primitive則否。
  3. Primitive資料型態的變數永遠都有值,而Non-Primitive可以為空值( NULL )。
  4. Primitive的變數大小取決於其形態,Non-Primitive全部都為相同大小。

String Methods

現在我們知道String是由一串連續的字元組合而成,是Java中的一種class。接著提供一些實用的關鍵字,讓字串的使用上能更靈活!!!

  • length() → 計算字串的長度
String code = "Hello World!";
System.out.println( code.length() );     //Output : 12

程式解析 : 計算一串字串的長度時,會把包含空格或標點也算進去。且需要使用某指令的時候記得在關鍵詞前加一個 . (Period) 。

  • toUpperCase() & toLowerCase() → 將字串全轉為大寫或小寫
  • concat (StringName) → 將兩個字串結合在一起
String greeting = "Hello ";
String person = "Chi";
String NewG = greeting.toUpperCase();
String NewP = person.toLowerCase();
System.out.println(NewG.concat(NewP));       //Outputs : HELLO chi
  • indexOf(“ “) → 會回傳要尋找的字串之首字母的索引值(若有相同字串,則已先找到為主)
    → 順帶一提 : 不論是字串或陣列,我們把每一筆資料的第一個索引值都設為0
String txt = "Please locate where 'locate' occurs!";
System.out.println( txt.indexOf("locate") );     // Outputs 7  (內容注意使用雙引號)

以上內容若有錯誤,煩請不吝嗇告知,感恩!!!/images/emoticon/emoticon12.gif


上一篇
Day 5 : 變數( 1 )
下一篇
Day 7 : 運算子與數學計算
系列文
30天Java由淺入深30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
鰻魚燒
iT邦新手 4 級 ‧ 2022-12-10 20:34:21

String NewG = greeting.toUppercase();

這裡的toUppercase()應該改成 toUpperCase(),大小寫寫錯跑起來會有error發生

謝謝您的指教,已經更正!

我要留言

立即登入留言